//入口文件
import Vue from 'vue'
import App from './app.vue'

//导入路由所需包
import VueRouter from 'vue-router'
//将路由对象注册到vue
Vue.use(VueRouter)
//导入所需组件
import router from './router.js'
import moment from 'moment'
//定义全局的时间格式化工具
Vue.filter('dataFormat',function(dataStr,pattern="YYYY-MM-DD HH:mm:ss"){
	return moment(dataStr).format(pattern)
})

//导入请求资源
import VueResource from 'vue-resource'
Vue.use(VueResource)
//配置全局的post请求参数
Vue.http.options.emulateJSON = true;

//导入mint-ui组件
import MintUI from 'mint-ui'
import 'mint-ui/lib/style.css'
Vue.use(MintUI)


//导入mui
import './mui/css/mui.css'
//导入额外的mui图标--还需导入额外的tff文件
import './mui/css/icons-extra.css'


//引入缩略图插件
import VuePreview from 'vue-preview'
// defalut install
Vue.use(VuePreview)

// 导入vuex
import Vuex from 'vuex'
Vue.use(Vuex)

var car =JSON.parse(localStorage.getItem('car') || '[]') 

var store = new Vuex.Store({
	state:{
		//需要存取购物车中的id 、价格 、 数量 、 是否选中
		car:car
	},
	mutations:{
		addToCar(state,goods){
			//代表购物车中没有该商品
			var flag=false
			state.car.some(item => {
				if(item.id==goods.id){
					item.count+=goods.count
					flag=true
					return true
				}
			})
			if(!flag){
				state.car.push(goods)
			}
			localStorage.setItem('car',JSON.stringify(state.car))
		},
		updataCar(state,goods){
			state.car.some(item=>{
				if(item.id==goods.id){
					item.count=goods.count
				}
			})
			localStorage.setItem('car',JSON.stringify(state.car))
		},
		move(state,id){
			state.car.forEach((item,i)=>{
				if(item.id==id){
					state.car.splice(i,1)
				}
			})
			localStorage.setItem('car',JSON.stringify(state.car))
		},
		updata(state,info){
			state.car.forEach(item=>{
				if(item.id==info.id){
					item.flag=info.flag
				}
			})
			localStorage.setItem('car',JSON.stringify(state.car))
		}
		
	},
	getters:{
		getAllCount(state){
			var c= 0
			state.car.forEach(item => {
				c+=item.count
			})
			return c
		},
		getShopCount(state){
			var o=[]
			state.car.forEach(item=>{
				o[item.id]=item.count
			})
			return o
		},
		getFlag(state){
			var x=[]
			state.car.forEach(item=>{
				x[item.id]=item.flag
			})
			return x
		},
		getCountAndMoney(state){
			var z={count:0,money:0}
			state.car.forEach(item=>{
				if(item.flag){
					z.count+=item.count
					z.money+=item.count*item.price
				}
			})
			return z
		}
	}
})

var vm =new Vue({
	el:'#app',
	render(c) {
		return c(App)
	},
	router,
	store
	
})